$package('upms.role');
upms.role = function(){
	var _box = null;
	var unitValue = "";
	var _this = {
		addAction:baseUrl+'/data/add'+'?applicationId='+applicationId,
		editAction:baseUrl+'/data/edit'+'?applicationId='+applicationId,
		deleteAction:baseUrl+'/data/delete',
		
		editForm:function(){
			return $("#editForm");
		},
		editWin:function(){
			return $("#edit-win");
		},
		
		add:function(){
			if(_this.editForm().form('validate')){
				//获取选中的值
				var rangType=$("#rangeType").combobox("getValue");
				
				
				//alert($("#provinceCode").combobox("getText"));
				if(rangType == 2){//省
					$("#dataValueSave").val($("#provinceCode").combobox("getValue"));
					$("input[name=dataNameValue]").val($("#provinceCode").combobox("getText")+"("+$("#provinceCode").combobox("getValue")+")");
				}else if(rangType == 3){//市
					$("#dataValueSave").val($("#cityCode").combobox("getValue"));
					$("input[name=dataNameValue]").val($("#cityCode").combobox("getText")+"("+$("#cityCode").combobox("getValue")+")");
				}else if(rangType == 4){//区县
					$("#dataValueSave").val($("#townCode").combobox("getValue"));
					$("input[name=dataNameValue]").val($("#townCode").combobox("getText")+"("+$("#townCode").combobox("getValue")+")");
				}else if(rangType == 5){//小区
					var value="";
					var texts="";
					$("input[name='unitValue']").each(function(){
						if($(this).is(":checked")){
							if(value == ""){
								value=value+$(this).val();
								texts=texts+$(this).attr("alt")+"("+$(this).val()+")";
							}else{
								value=value+","+$(this).val();
								texts=texts+","+$(this).attr("alt")+"("+$(this).val()+")";
							}
							
						}
					});
					$("#dataValueSave").val(value);
					$("input[name=dataNameValue]").val(texts);
				}
				
				
				
				if($("#dataValueSave").val()==""){
					upms.alert('提示',"请选择地区",'error');
					return ;
				}
				_this.editForm().attr('action',_this.addAction);
				upms.saveForm(_this.editForm(),function(data){
					var param = $("#searchForm").serializeObject();
					$("#data-list").datagrid('reload',param);
					_this.editWin().dialog('close');
				});
			}
		},
		edit:function(){
			if(_this.editForm().form('validate')){
				//获取选中的值
				var rangType=$("#rangeType").combobox("getValue");
				if(rangType == 2){//省
					$("#dataValueSave").val($("#provinceCode").combobox("getValue"));
					$("input[name=dataNameValue]").val($("#provinceCode").combobox("getText")+"("+$("#provinceCode").combobox("getValue")+")");
				}else if(rangType == 3){//市
					$("#dataValueSave").val($("#cityCode").combobox("getValue"));
					$("input[name=dataNameValue]").val($("#cityCode").combobox("getText")+"("+$("#cityCode").combobox("getValue")+")");
				}else if(rangType == 4){//区县
					$("#dataValueSave").val($("#townCode").combobox("getValue"));
					$("input[name=dataNameValue]").val($("#townCode").combobox("getText")+"("+$("#townCode").combobox("getValue")+")");
				}else if(rangType == 5){//小区
					var value="";
					var texts="";
					$("input[name='unitValue']").each(function(){
						if($(this).is(":checked")){
							if(value == ""){
								value=value+$(this).val();
								texts=texts+$(this).attr("alt")+"("+$(this).val()+")";
							}else{
								value=value+","+$(this).val();
								texts=texts+","+$(this).attr("alt")+"("+$(this).val()+")";
							}
							
						}
					});
					
					$("#dataValueSave").val(value);
					$("input[name=dataNameValue]").val(texts);
				}
				
				if($("#dataValueSave").val()==""){
					upms.alert('提示',"请选择地区",'error');
					return ;
				}
				_this.editForm().attr('action',_this.editAction);
				upms.saveForm(_this.editForm(),function(data){
					var param = $("#searchForm").serializeObject();
					$("#data-list").datagrid('reload',param);
					_this.editWin().dialog('close');
				});
			}
		},
	    deleteData:function(){
			var rows = $('#data-list').datagrid('getChecked');
			if (upms.checkSelect(rows)){
					$.messager.confirm('Confirm','是否删除选中记录?',function(r){  
						if (r){
					    	var arr = [],idKey = 'dataPermissionId'; //主键名称
					    	$.each(rows,function(i,record){
					    		arr.push('dataPermissionIds='+record[idKey]);
					    	});
					    	var data = arr.join("&");
					    	upms.deleteForm(_this.deleteAction,data,function(){
								var param = $("#searchForm").serializeObject();
								$("#data-list").datagrid('reload',param);
							});
						}  
				});
			}
		},
		
		initForm:function(){
			//新增操作
			$("#addBtn").click(function(){
				$("#editForm").resetForm();
				$('#provinceCode').combobox('setValue', '');
				$('#cityCode').combobox('clear');
				$('#townCode').combobox('clear');
				$("#estate").empty();
				$("#edit-win").dialog({
					buttons:[
						{
							text:'保  存',
							iconCls: 'icon-ok',
							handler:function(){
								_this.add();
							}
						},
						{
							text:'关  闭',
							iconCls: 'icon-cancel',
							handler:function(){
								_this.editWin().dialog('close');
							}
						}
				]});
				_this.editWin().dialog('open');
			});
			//删除操作
			$("#deleteBtn").click(function(){
				_this.deleteData();
			});
			
			//修改操作
			$("#editBtn").click(function(){
				$("#editForm").resetForm();
				//只能对一条数据编辑
				var rows = $('#data-list').datagrid('getChecked');
				if(rows.length > 1){
					upms.alert('警告','请单选记录后，再进行操作.','warning');
					return false;
				}
				var row = $('#data-list').datagrid('getSelected');
				if (row){
					$('#rangeType').combobox('setValue', '');
					$('#provinceCode').combobox('setValue', '');
					$('#cityCode').combobox('clear');
					$('#townCode').combobox('clear');
					$("#estate").empty();
					unitValue ="";
					upms.progress();
					var data ={};
					var idKey = 'dataPermissionId'; //主键名称
 					data[idKey] = row.dataPermissionId;
					upms.getById(baseUrl+"/data/getDataByDataPermissionId",data,function(result){
						upms.closeProgress();
						$("#editForm").form('load',result.model);
						//编辑 某条记录 数据回填开始 
						var getUrl="";
						$('#rangeType').combobox('setValue', result.model.rangeType);
						if(result.model.rangeType == 2 ){//省
							$('#provinceCode').combobox('setValue', result.model.dataValue);
							$('#cityCode').combobox('clear');
							$('#townCode').combobox('clear');
							$("#estate").empty();
						}else if(result.model.rangeType == 3 ){//市
							$('#provinceCode').combobox('select', result.provinceCode);
							$('#cityCode').combobox('setValue',  result.cityCode);
							$('#townCode').combobox('clear');
							$("#estate").empty();
						}else if(result.model.rangeType == 4 ){//区县
							$('#provinceCode').combobox('select',result.provinceCode);
							$('#cityCode').combobox('select', result.cityCode);
							$('#townCode').combobox('setValue',result.townCode);
							$("#estate").empty();
						}else if(result.model.rangeType == 5 ){//小区
							unitValue=result.model.dataValue.split(',');
							$('#provinceCode').combobox('select',result.provinceCode);
							$('#cityCode').combobox('select', result.cityCode);
							$('#townCode').combobox('select', result.townCode);
						}
						//编辑 某条记录 数据回填结束
						$("#edit-win").dialog({
	   						buttons:[
	   							{
	   								text:'保  存',
	   								iconCls: 'icon-ok',
	   								handler:function(){
	   									_this.edit();
	   								}
	   							},
	   							{
	   								text:'关  闭',
	   								iconCls: 'icon-cancel',
	   								handler:function(){
	   									_this.editWin().dialog('close');
	   								}
	   							}
	   					]});
						_this.editWin().dialog('open');
	   				});
				}else{
					upms.alert('警告','未选中记录.','warning');
				}
			});
			
			$('#rangeType').combobox('setValue', '2');
			var rangType;
			 $('#rangeType').combobox({  
				 
				/* onLoadSuccess : function(){  
			            $('#rangeType').combobox('selectIndex',0);   
			        },*/
	            onChange: function () {  
	            	 rangType=$("#rangeType").combobox("getValue");
	            	 //alert(rangType);
	            	 if(rangType==2){
	            		 $('#cityCode').combobox("clear");
		            	 $('#cityCode').combobox('loadData', {});
		            	 $('#townCode').combobox('clear');
		            	 $('#townCode').combobox('loadData', {});
		            	 $("#estate").empty();
	            	 }else if(rangType==3){
	            		 $('#provinceCode').combobox('select', $('#provinceCode').combobox("getValue"));
	            		 //更新下一级市级列表  
				         $('#cityCode').combobox('reload', baseUrl+'/data/getCity?provinceCode=' + $('#provinceCode').combobox("getValue"));
	            		 $('#townCode').combobox('clear');
		            	 $('#townCode').combobox('loadData', {});
		            	 $("#estate").empty();
	            	 }else if(rangType==4){
	            		 $('#provinceCode').combobox('select', $('#provinceCode').combobox("getValue"));
	            		 //更新下一级市级列表  
				         $('#cityCode').combobox('reload', baseUrl+'/data/getCity?provinceCode=' + $('#provinceCode').combobox("getValue"));
				         $('#townCode').combobox('reload',  baseUrl+'/data/getArea?cityCode=' + $('#cityCode').combobox("getValue"));  
		            	 $("#estate").empty();
	            	 }else if(rangType==5){
	            		 $("#estate").empty();
	            		 $('#provinceCode').combobox('select', $('#provinceCode').combobox("getValue"));
	            		 //更新下一级市级列表  
				         $('#cityCode').combobox('reload', baseUrl+'/data/getCity?provinceCode=' + $('#provinceCode').combobox("getValue"));
				         $('#townCode').combobox('reload',  baseUrl+'/data/getArea?cityCode=' + $('#cityCode').combobox("getValue"));
	            		 if($('#townCode').combobox("getValue")!=""){
	            			 $.ajax({
									url:baseUrl+'/data/getEstate?townCode='+$('#townCode').combobox("getValue"),
									type:"post",
									dataType:"json",
									success:function(data){
										
										$("#estate").empty();
										for ( var j = 0; j < data.length;j++) {
											//$("#estate").append("<option value='"+i+"'>选项"+i+"</option>")
											$("#estate").append('<label style="width:150px;text-align:left;margin:5px 0;"><input style="width:auto;vertical-align:middle;" type="checkbox" name="unitValue" value="'+data[j].unitId+'">'+data[j].name+"</label>")//data[j].name
										}
										//选中小区
										if(unitValue!=""){
											for(var i=0;i<unitValue.length;i++){
												$("input[name='unitValue']").each(function(){
													if($(this).val() === unitValue[i]){
														 $(this).attr("checked", 'true');
													}
												});
											}
										}
										
									}
								});
	            		 }
	            	 }
	            }
	        });  
			rangType=$("#rangeType").combobox("getValue");
			//alert(rangType);
			
			//省 市 区级联 
			 $('#provinceCode').combobox({  
	                 
	                editable: false,  
	                valueField: 'provinceCode',  
	                textField: 'provinceName', 
	                url:  baseUrl+'/data/getProvince',
	                onLoadSuccess: function () {  
//	            //加载完省 后,设置选中第一项  
//	            var val = $(this).combobox("getData");  
//	            for (var item in val[0]) {  
//	                if (item == "provinceCode") {  
//	                    $(this).combobox("select", val[0][item]);  
//	                }  
//	            }  
	            },  
	            onSelect: function () {  
	            	 var rangeType=$("#rangeType").combobox("getValue");
	            	 $('#cityCode').combobox("clear");
	            	 $('#cityCode').combobox('loadData', {});
	            	 $('#townCode').combobox('clear');
	            	 $('#townCode').combobox('loadData', {});
	            	 $("#estate").empty();
		        	 if(rangeType>2){
				         //更新下一级市级列表  
				         $('#cityCode').combobox('reload', baseUrl+'/data/getCity?provinceCode=' + $(this).combobox("getValue"));
		        	 }
	            }
	        });  
			 
	        $('#cityCode').combobox({  
	                
	                editable: false,  
	                valueField: 'cityCode',  
	                textField: 'cityName',  
	                 onLoadSuccess: function () {  
		            //加载完成后,设置选中第一项  
//		            var val = $(this).combobox("getData");  
//		            for (var item in val[0]) {  
//		                if (item == "cityCode") {  
//		                    $(this).combobox("select", val[0][item]);  
//		                }  
//		            }  
	             },  
	             onSelect: function () {  
	            	 $('#townCode').combobox('clear');
	            	 $('#townCode').combobox('loadData', {});
	            	 $("#estate").empty();
	            	 var rangeType=$("#rangeType").combobox("getValue");
		        	 if(rangeType>3){
			            //更新区县列表  
			            $('#townCode').combobox('reload',  baseUrl+'/data/getArea?cityCode=' + $(this).combobox("getValue"));  
		        	 }
	        	 }  
	        });  
	              
	            $('#townCode').combobox({  
	                 
	                editable: false,  
	                valueField: 'townCode',  
	                textField: 'townName',
	                onLoadSuccess: function () {  
	    	            //加载完成后,设置选中第一项  
//	    	            var val = $(this).combobox("getData");  
//	    	            for (var item in val[0]) {  
//	    	                if (item == "townCode") {  
//	    	                    $(this).combobox("select", val[0][item]);  
//	    	                }  
//	    	            }  
	    	        },  
	    	        onSelect: function () {  
	    	            //加载小区列表  
	    	           /* $('#townCode').combobox('reload',  baseUrl+'/data/getArea?cityCode=' + $(this).combobox("getValue")); */ 
	    	        	var rangeType=$("#rangeType").combobox("getValue");
	    	        	$("#estate").empty();
			        	if(rangeType>4){
		    	        	$.ajax({
								url:baseUrl+'/data/getEstate?townCode='+$(this).combobox("getValue"),
								type:"post",
								dataType:"json",
								success:function(data){
									
									$("#estate").empty();
									for ( var j = 0; j < data.length;j++) {
										//$("#estate").append("<option value='"+i+"'>选项"+i+"</option>")
										$("#estate").append('<label style="width:150px;text-align:left;margin:5px 0;"><input style="width:auto;vertical-align:middle;" type="checkbox" name="unitValue" alt="'+data[j].name+'" value="'+data[j].unitId+'">'+data[j].name+"</label>")//data[j].name
									}
									//选中小区
									if(unitValue!=""){
										for(var i=0;i<unitValue.length;i++){
											$("input[name='unitValue']").each(function(){
												if($(this).val() === unitValue[i]){
													 $(this).attr("checked", 'true');
												}
											});
										}
									}
									
								}
							});
			        	}
	    	        }  
	            }); 
	            
			
		},
		
		
		config:{
  			dataGrid:{
  				title:'数据权限列表',
	   			url:'dataList?applicationId='+applicationId,
	   			loadMsg:"处理中，请稍候…",
			    toolbar:"#toolbar",
			    idField:"dataPermissionId",
	   			columns:[[
						{field:'dataPermissionId',checkbox:true},
						/*{field:'dataPermissionId',title:'序号',width:140,align:'center',sortable:true},*/
						{field:'dataPermissionName',title:'数据权限名称',width:140,align:'center',sortable:true},
						{field:'rangeType',title:'范围类型',width:200,align:'center',sortable:true},
						{field:'dataValue',title:'数据权限值',width:140,align:'center',sortable:true},
						{field:'dataNameValue',title:'数据权限名称-值',width:240,align:'center',sortable:true},
						{field:'createTime',title:'创建时间',width:140,align:'center',sortable:true,formatter:upms.dateTimeFormatter}
				]]
			}
		},
		init:function(){
			_this.initForm();
			_box = new MyDataGrid(_this.config); 
			_box.init();
			
		}
	}
	_this._box = _box;
	return _this;
}();

$(function(){
	upms.role.init();
});		